package couponinfo

type CouponInfo struct {
	Id        int    `gorm:"column:id" json:"id"`                 // 主键
	CId       int    `gorm:"column:c_id" json:"c_id"`             // 对应的优惠券Id
	StartTime int    `gorm:"column:start_time" json:"start_time"` // 创建时间
	EndTime   int    `gorm:"column:end_time" json:"end_time"`     // 结束时间
	UserId    int    `gorm:"column:user_id" json:"user_id"`       // 对应的用户ID
	Status    int    `gorm:"column:status" json:"status"`         // 优惠券状态：未使用 1 ， 已使用  2 ，已作废 3 ， 已过期 4
	OrderId   string `gorm:"column:order_id" json:"order_id"`     // 对应的订单ID
	OpenId    string `gorm:"column:open_id" json:"openId"`        // 微信唯一标识

	Type                uint8  `gorm:"type" json:"type"`
	PlaceId             int    `gorm:"place_id" json:"placeId"`
	Discounts           int    `gorm:"discounts" json:"discounts"` // 实际优惠
	Threshold           int    `gorm:"threshold" json:"threshold"`
	OrderCouponRecordId int    `gorm:"order_coupon_record_id" json:"orderCouponRecordId"`
	TradeNo             string `gorm:"trade_no" json:"tradeNo"`
	Name                string `gorm:"name" json:"name"`
	DeviceSn            string `gorm:"device_sn" json:"deviceSn"`
}

// model init
func New() *CouponInfo {
	return &CouponInfo{}
}

// TableName
func (m *CouponInfo) TableName() string {
	return "coupon_info"
}

func (m *CouponInfo) Mutate(attrs ...WithdrawalLogAttr) *CouponInfo {
	WithdrawalLogAttrs(attrs).Apply(m)
	return m
}
